#ifndef CERTIFICATEREQUIREMENTS_H_
#define CERTIFICATEREQUIREMENTS_H_
#include "RequirementsGroup.h"
#include "RequirementType.h"
#include <QHash>

class CertificateRequirements : public QObject
{
	Q_OBJECT
	
public:
	CertificateRequirements();
	virtual ~CertificateRequirements();
	
	int completionPercentage();
	
	RequirementsGroup& requirements(const RequirementType::Type i_type);
	
	RequirementsGroup& priesthood() {return m_requirements[RequirementType::Priesthood];}
	RequirementsGroup& family() {return m_requirements[RequirementType::Family];}
	RequirementsGroup& quorum() {return m_requirements[RequirementType::Quorum];}
	RequirementsGroup& education() {return m_requirements[RequirementType::Education];}
	RequirementsGroup& physical() {return m_requirements[RequirementType::Physical];}
	RequirementsGroup& spiritual() {return m_requirements[RequirementType::Spiritual];}
	RequirementsGroup& citizenship() {return m_requirements[RequirementType::Citizenship];}
	RequirementsGroup& service() {return m_requirements[RequirementType::Service];}
	RequirementsGroup& journal() {return m_requirements[RequirementType::Journal];}
	
	
private:
	RequirementsGroup m_requirements[RequirementType::SIZE];
};

#endif /*CERTIFICATEREQUIREMENTS_H_*/
